// stores/consult.ts
import { ref } from 'vue'
import { defineStore } from 'pinia'
import type { Image } from '@/types/consult.d.ts'

// 类型
export interface ConsultInfo {
	illnessDesc: string
	illnessTime: number
	consultFlag: number
	pictures: Image[]
}

// 仓库
export const useConsultStore = defineStore(
	'consult',
	() => {
		// 患者病情初始数据
		const initalValue = {
			illnessDesc: '',
			illnessTime: 1,
			consultFlag: 0,
			pictures: [],
		}

		// 患者病情数据
		const illnessInfo = ref<ConsultInfo>({ ...initalValue })

		// url 中的参数 防止丢失
		const type = ref('')
		const illnessType = ref('')
		const depId = ref('')

		// 保存患者 id
		const patientId = ref('')

		// 清除问诊信息的函数
		const clear = () => {
			type.value = ''
			illnessType.value = ''
			depId.value = ''
			patientId.value = ''

			// ... 对象 展开运算符，将对象打开，属性和值，全部设置到 目标对象中
			// Api9 中可以用对象的展开运算符，next 中不支持
			// 如果硬要用，写.ts，如果写的是.ts 不仅解构可以用，any 等所有 ts 的支持的语法都可以用
			illnessInfo.value = { ...initalValue }
		}

		return { illnessInfo, initalValue, type, illnessType, depId, patientId, clear }
	},
	{
		unistorage: true, // 保存到硬盘
	}
)
